home *** CD-ROM | disk | FTP | other *** search
/ Openstep 4.2 (Developer) / Openstep Developer 4.2.iso / NextDeveloper / Source / GNU / perl / Perl / t / op / pack.t < prev    next >
Encoding:
Text File  |  1994-10-18  |  1.2 KB  |  43 lines

  1. #!./perl
  2.  
  3. # $RCSfile: pack.t,v $$Revision: 4.1 $$Date: 92/08/07 18:28:11 $
  4.  
  5. print "1..8\n";
  6.  
  7. $format = "c2x5CCxsdila6";
  8. # Need the expression in here to force ary[5] to be numeric.  This avoids
  9. # test2 failing because ary2 goes str->numeric->str and ary doesn't.
  10. @ary = (1,-100,127,128,32767,987.654321098 / 100.0,12345,123456,"abcdef");
  11. $foo = pack($format,@ary);
  12. @ary2 = unpack($format,$foo);
  13.  
  14. print ($#ary == $#ary2 ? "ok 1\n" : "not ok 1\n");
  15.  
  16. $out1=join(':',@ary);
  17. $out2=join(':',@ary2);
  18. print ($out1 eq $out2 ? "ok 2\n" : "not ok 2\n");
  19.  
  20. print ($foo =~ /def/ ? "ok 3\n" : "not ok 3\n");
  21.  
  22. # How about counting bits?
  23.  
  24. print +($x = unpack("%32B*", "\001\002\004\010\020\040\100\200\377")) == 16
  25.     ? "ok 4\n" : "not ok 4 $x\n";
  26.  
  27. print +($x = unpack("%32b69", "\001\002\004\010\020\040\100\200\017")) == 12
  28.     ? "ok 5\n" : "not ok 5 $x\n";
  29.  
  30. print +($x = unpack("%32B69", "\001\002\004\010\020\040\100\200\017")) == 9
  31.     ? "ok 6\n" : "not ok 6 $x\n";
  32.  
  33. print +($x = unpack("%32B*", "Now is the time for all good blurfl")) == 129
  34.     ? "ok 7\n" : "not ok 7 $x\n";
  35.  
  36. open(BIN, "./perl") || die "Can't open ../perl: $!\n";
  37. sysread BIN, $foo, 8192;
  38. close BIN;
  39.  
  40. $sum = unpack("%32b*", $foo);
  41. $longway = unpack("b*", $foo);
  42. print $sum == $longway =~ tr/1/1/ ? "ok 8\n" : "not ok 8\n";
  43.